package vip.xiaomaoxiaoke.idempotent.support;

/**
 * 序列化，重要是把幂等方法法返回结果序列号成字符串，字符串也可以序列化成返回结果
 */
public interface ExecutionResultSerializer {
    /**
     * 正常结果的序列化
     * */
    <T> String serializeResult(T data);

    /**
     * 正常结果的反序列化
     * */
    <T> T deserializeResult(String data, Class<T> cls);

    /**
     * 异常结果的序列化
     * */
    <T extends Exception> String serializeException(T data);
    /**
     * 异常结果的反序列化
     * */
    <T extends Exception> T deserializeException(String data);
}
